//
// Created by 啊汤哥 on 2025/9/14.
//
#include <stdio.h>
#include <stdlib.h>

// 顺序栈
#define MaxSize 40 // 初始化容器

typedef struct {
    int data[MaxSize];
    int top;
}SqStack;

void InitStack(SqStack &s) {
    s.top = -1;
}

// 判断栈是否为空
bool SqStackEmpty(SqStack &s) {
    if (s.top == -1) {
        return true;
    }
    return false;
}

// 入栈 -- 判断栈满的情况
bool PushStack(SqStack &s, int value) {
    if (s.top == MaxSize-1) {
        return false;
    }
    s.top +=1;
    s.data[s.top] = value;
    return true;
}

// 出栈 判断栈空的情况

bool PopStack(SqStack &s, int &value) {
    if (s.top == -1) {
        return false;
    }
    value = s.data[s.top];
    s.top -=1;
    return true;
}


// 读取栈顶元素
bool GetTop(SqStack &s, int &value) {
    if (s.top == -1) {
        return false;
    }
    value = s.data[s.top];
    return true;
}